|
100
|
Add a pool to cover all visible-elements

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
oDCOCX_Exontrol1:Pools:Add(nil,nil,nil,nil):[HeaderSize,exHeaderLeft] := 24
oDCOCX_Exontrol1:EndUpdate()
|
|
99
|
How can I ensure that a specified pool fits the surface's visible area
local var_Pattern as IPattern
local var_Pools as IPools
var_Pools := oDCOCX_Exontrol1:Pools
var_Pattern := var_Pools:Add(nil,nil,nil,nil):Pattern
var_Pattern:Type := exPatternBDiagonal
var_Pattern:Color := RGB(224,224,224)
var_Pools:Add(2000,nil,nil,nil):EnsureVisible()
|
|
98
|
No property for the pool can be saved/restored through Undo/Redo feature

local var_Lane as ILane
local var_Pool as IPool
local l as USUAL
oDCOCX_Exontrol1:AllowUndoRedo := true
var_Pool := oDCOCX_Exontrol1:Pools:Add(-54,-47,244,112)
l := var_Pool:StartUpdatePool
var_Lane := var_Pool:[Lane,exLaneVertical]
var_Lane:Color := RGB(240,240,240)
var_Lane:Children:Count := 2
var_Pool:EndUpdatePool(l)
|
|
97
|
Rename Undo/Redo commands into the control's toolbar

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:ToolBarFormat := "-1,100,102,101,|,103,104"
oDCOCX_Exontrol1:[ToolBarCaption,103] := "Anuleaza <img>4</img>"
oDCOCX_Exontrol1:[ToolBarCaption,104] := "<img>5</img>Reface"
oDCOCX_Exontrol1:[ToolBarToolTip,103] := "Anuleaza ultima actiune UI. Pentru a anula o actiune apasati Ctrl+Z."
oDCOCX_Exontrol1:[ToolBarToolTip,104] := "Inverseaza cea mai recenta operatie de anulare. Pentru a reface o actiune apasati Ctrl+Y."
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
oDCOCX_Exontrol1:EndUpdate()
|
|
96
|
Add Undo/Redo commands to control's toolbar

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:ToolBarFormat := "-1,100,102,101,|,103,104"
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
oDCOCX_Exontrol1:EndUpdate()
|
|
95
|
Clear Undo/Redo queue (method 2)

local var_Elements as IElements
local c as USUAL
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
c := oDCOCX_Exontrol1:UndoRedoQueueLength
oDCOCX_Exontrol1:UndoRedoQueueLength := 0
oDCOCX_Exontrol1:UndoRedoQueueLength := c
OutputDebugString(String2Psz( oDCOCX_Exontrol1:[UndoListAction,nil,nil] ))
oDCOCX_Exontrol1:EndUpdate()
|
|
94
|
Clear Undo/Redo queue (method 1)

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
oDCOCX_Exontrol1:AllowUndoRedo := true
OutputDebugString(String2Psz( oDCOCX_Exontrol1:[UndoListAction,nil,nil] ))
oDCOCX_Exontrol1:EndUpdate()
|
|
93
|
Removes Redo operations

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
oDCOCX_Exontrol1:Undo()
oDCOCX_Exontrol1:RedoRemoveAction(10,nil)
OutputDebugString(String2Psz( oDCOCX_Exontrol1:[RedoListAction,nil,nil] ))
oDCOCX_Exontrol1:EndUpdate()
|
|
92
|
Removes Undo operations

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
oDCOCX_Exontrol1:UndoRemoveAction(10,nil)
OutputDebugString(String2Psz( oDCOCX_Exontrol1:[UndoListAction,nil,nil] ))
oDCOCX_Exontrol1:EndUpdate()
|
|
91
|
Record the UI operations as a block of undo/redo operations

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:StartBlockUndoRedo()
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
oDCOCX_Exontrol1:EndBlockUndoRedo()
OutputDebugString(String2Psz( oDCOCX_Exontrol1:[UndoListAction,nil,nil] ))
oDCOCX_Exontrol1:EndUpdate()
|
|
90
|
Groups the next to current Undo/Redo Actions in a single block

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
oDCOCX_Exontrol1:GroupUndoRedoActions(3)
OutputDebugString(String2Psz( oDCOCX_Exontrol1:[UndoListAction,nil,nil] ))
oDCOCX_Exontrol1:EndUpdate()
|
|
89
|
Limits the number of entries within the Undo/Redo queue

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:UndoRedoQueueLength := 1
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
OutputDebugString(String2Psz( oDCOCX_Exontrol1:[UndoListAction,nil,nil] ))
oDCOCX_Exontrol1:EndUpdate()
|
|
88
|
Lists the Redo actions that can be performed on the surface

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
oDCOCX_Exontrol1:Undo()
OutputDebugString(String2Psz( oDCOCX_Exontrol1:[RedoListAction,nil,nil] ))
oDCOCX_Exontrol1:EndUpdate()
|
|
87
|
Lists the Undo actions that can be performed on the surface

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
OutputDebugString(String2Psz( oDCOCX_Exontrol1:[UndoListAction,nil,nil] ))
oDCOCX_Exontrol1:EndUpdate()
|
|
86
|
Checks whether the Undo operation is possible

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
oDCOCX_Exontrol1:Undo()
OutputDebugString(String2Psz( "CanRedo" ))
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:CanRedo) ))
oDCOCX_Exontrol1:EndUpdate()
|
|
85
|
Call Redo by code

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
oDCOCX_Exontrol1:Undo()
oDCOCX_Exontrol1:Redo()
oDCOCX_Exontrol1:EndUpdate()
|
|
84
|
Checks whether the Undo operation is possible

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
OutputDebugString(String2Psz( "CanUndo" ))
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:CanUndo) ))
oDCOCX_Exontrol1:EndUpdate()
|
|
83
|
Call Undo by code

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
oDCOCX_Exontrol1:Undo()
oDCOCX_Exontrol1:EndUpdate()
|
|
82
|
Save the element's properties for Undo/Redo operations, by code

local var_Elements as IElements
local var_Link as ILink
local h as USUAL
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:StartBlockUndoRedo()
var_Link := oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
h := var_Link:StartUpdateLink
var_Link:Color := RGB(255,0,0)
var_Link:Width := 2
var_Link:ShowDir := false
var_Link:ShowLinkType := exLinkStraight
var_Link:EndUpdateLink(h)
oDCOCX_Exontrol1:EndBlockUndoRedo()
oDCOCX_Exontrol1:EndUpdate()
|
|
81
|
No color is restored for the link when Undo/Redo operation is executed

METHOD OCX_Exontrol1AddElement(Element) CLASS MainDialog
// AddElement event - A new element has been added to the surface.
// Element.ShowCheckBox = True
// Element.CheckBoxAlign = 2
RETURN NIL
local var_Elements as IElements
local var_Link as ILink
local h as USUAL
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Check <b>1",-64,-64)
var_Elements:Add("Check <b>2",nil,nil):Checked := exChecked
oDCOCX_Exontrol1:StartBlockUndoRedo()
var_Link := oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
h := var_Link:StartUpdateLink
var_Link:Color := RGB(255,0,0)
var_Link:Width := 2
var_Link:ShowDir := false
var_Link:ShowLinkType := exLinkStraight
var_Link:EndUpdateLink(h)
oDCOCX_Exontrol1:EndBlockUndoRedo()
oDCOCX_Exontrol1:EndUpdate()
|
|
80
|
Save the element's properties for Undo/Redo operations, by code

local var_Element as IElement
local h as USUAL
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:Elements:Add("Item <b>1",-64,-64)
oDCOCX_Exontrol1:StartBlockUndoRedo()
var_Element := oDCOCX_Exontrol1:Elements:Add("Item <b>2",nil,nil)
h := var_Element:StartUpdateElement
var_Element:BackColor := RGB(0,0,0)
var_Element:ForeColor := RGB(255,255,255)
var_Element:BorderColor := RGB(255,0,0)
var_Element:EndUpdateElement(h)
oDCOCX_Exontrol1:EndBlockUndoRedo()
oDCOCX_Exontrol1:EndUpdate()
|
|
79
|
No color is restored for the element when Undo/Redo operation is executed

local var_Element as IElement
local h as USUAL
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:Elements:Add("Item <b>1",-64,-64)
oDCOCX_Exontrol1:StartBlockUndoRedo()
var_Element := oDCOCX_Exontrol1:Elements:Add("Item <b>2",nil,nil)
h := var_Element:StartUpdateElement
var_Element:BackColor := RGB(0,0,0)
var_Element:ForeColor := RGB(255,255,255)
var_Element:BorderColor := RGB(255,0,0)
var_Element:EndUpdateElement(h)
oDCOCX_Exontrol1:EndBlockUndoRedo()
oDCOCX_Exontrol1:EndUpdate()
|
|
78
|
How can I ensure that a specified element fits the surface's visible area

local var_Elements as IElements
local var_Pattern as IPattern
var_Elements := oDCOCX_Exontrol1:Elements
var_Pattern := var_Elements:Add("Element A",-100,nil):Pattern
var_Pattern:Type := exPatternBDiagonal
var_Pattern:Color := RGB(224,224,224)
var_Elements:Add("Element B",2000,nil):EnsureVisible()
|
|
77
|
LayoutEndChanging(exUndo), LayoutEndChanging(exRedo) or LayoutEndChanging(exUndoRedoUpdate) notifiy your application once a Undo/Redo operation is executed (CTRL+Z, CTRL+Y) or updated
METHOD OCX_Exontrol1LayoutEndChanging(Operation) CLASS MainDialog
// LayoutEndChanging event - Notifies your application once the control's layout has been changed.
OutputDebugString(String2Psz( "LayoutEndChanging" ))
OutputDebugString(String2Psz( AsString(Operation) ))
RETURN NIL
local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
oDCOCX_Exontrol1:EndUpdate()
|
|
76
|
Turn on the Undo/Redo feature

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowUndoRedo := true
oDCOCX_Exontrol1:Pools:Add(-154,-82,244,122)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Item <b>1",-64,-64)
var_Elements:Add("Item <b>2",nil,nil)
oDCOCX_Exontrol1:Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
oDCOCX_Exontrol1:EndUpdate()
|
|
75
|
ImageSize property on 32 (specifies the size of control' icons/images/check-boxes/radio-buttons)

METHOD OCX_Exontrol1AddElement(Element) CLASS MainDialog
// AddElement event - A new element has been added to the surface.
// Element.ShowCheckBox = True
RETURN NIL
local var_Appearance as IAppearance
local var_Element as IElement
local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:ImageSize := 32
oDCOCX_Exontrol1:Font:Size := 16
oDCOCX_Exontrol1:ContextMenuFont:Size := 16
oDCOCX_Exontrol1:Images("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")
var_Appearance := oDCOCX_Exontrol1:VisualAppearance
var_Appearance:Add(1,"gBFLBCJwBAEHhEJAAEhABfICg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EMRwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsOatVqjG5sYjcGC3La9cz3Pq/bpuDCbMxuaK1TrYXr1TTrcofBDldAxXRKDxRDWVhLnYOw9i6XxzjuXprCaOoKB6EwbiCZZCGOdZYlcT4xHmbhMnwNxtn+G5bmqdZ7n4Pw/i+X5zm+dQ9g4CAFjsfAJheOI8HsDoWDWTB/lwSAQkmA5PEgRYoDyDwYFYFoFmGCBmBqBphDgRJ0gOTIYBGRB/lyRh0iSCZbjYWJzgWDwIjYLoLmMCJGDKDJjBgWgqG6YhyhGHRzA2aJ1mCABOAiOJvhCZBJBYRoRmSCQmEqEQimkAZgg8TZnDCV4UkmCUmBKZYJGYWoWCUUhiFMNZckNUh2GENoaGaGZmgmJhqhqZpGGIEx2GYIxSGGGJdggWJth2Z4JmYeoemeSZ2H6H4hGmQhihyTRHGYLg7CiCgmgqIpokoNoOiOaJ4jqAochqaZGgaCxpAoZoaiaaJqEmWIcGgShcnCJwqEqFoR3YOoFlgchflqNouiuawHmWSYqGkWZQhcatzmaOoumuSp2j6L5bBaKo0GQKRnGGCxqiyCwmkqMpsksNpOGUGI7A0ew1G0Rxlg0PptgsZuDG2Sx2l6N5tnYNZZjUDRXDCVo5l2FoymqOpukuNpujubwLjmWY5k0ZwxkaFxYlWdp6j6b5Lnafo/nABQdg2FxcUsY5BkmXAkmeQpckwNRrkKTh8CSHZBk4NwyC4KxxgMDwakOMZDn8GgwnGAo2C4cwthMcwmCcMoHBMHRehwTIghySYNksZwcH4HBMEsHx5hyPItiweYxnwSZEH4Mozn0fR+DMAo7EYJ50gkdZelKdNql2UgJn0GIukwH4HicQRai2GI4mSVpNl0dZGledgNgcYpYDWUx3FsOQi5YV5anaTY3G6W53A2RxylydxFjiaxEFCCgBBAQ==")
var_Appearance:Add(2,"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")
var_Appearance:Add(3,"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")
var_Appearance:Add(4,"gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHLUXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBUrGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsYYDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVmWCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVoWiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiSe41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhFCcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==")
oDCOCX_Exontrol1:[Background,exCheckBoxState0] := 0x1000000
oDCOCX_Exontrol1:[Background,exCheckBoxState1] := 0x2000000
oDCOCX_Exontrol1:[Background,exCheckBoxState2] := 0x3000000
oDCOCX_Exontrol1:[Background,exContextMenuSelBackColor] := 0x4000000
oDCOCX_Exontrol1:[Background,exContextMenuSelForeColor] := RGB(1,0,0)
var_Elements := oDCOCX_Exontrol1:Elements
var_Element := var_Elements:Add("Element Check 2",nil,nil)
var_Element:Checked := exChecked
var_Element:Pictures := "1,2"
oDCOCX_Exontrol1:Home()
oDCOCX_Exontrol1:EndUpdate()
|
|
74
|
ImageSize property on 16 (default) (specifies the size of control' icons)

METHOD OCX_Exontrol1AddElement(Element) CLASS MainDialog
// AddElement event - A new element has been added to the surface.
// Element.ShowCheckBox = True
RETURN NIL
local var_Element as IElement
local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:ImageSize := 16
oDCOCX_Exontrol1:Images("gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOqdSqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVttmp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8acvQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtTGsbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgPnwD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg==")
var_Elements := oDCOCX_Exontrol1:Elements
var_Element := var_Elements:Add("Element Check 2",nil,nil)
var_Element:Checked := exChecked
var_Element:Pictures := "1,2"
oDCOCX_Exontrol1:Home()
oDCOCX_Exontrol1:EndUpdate()
|
|
73
|
We want to have option to start/end connectors at the middle of each side of the elements
local var_Elements as IElements
local var_Links as ILinks
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:ShowLinks := exShowLinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>1",nil,nil)
var_Elements:Add("Element <sha ;;0>2",164,64)
var_Elements:Add("Element <sha ;;0>3",0,132)
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,2],nil)
oDCOCX_Exontrol1:FitToClient()
oDCOCX_Exontrol1:EndUpdate()
|
|
72
|
How can I determine the position the user clicks within the element's boundaries (Click event)

METHOD OCX_Exontrol1Click() CLASS MainDialog
// Click event - Occurs when the user presses and then releases the left mouse button over the control.
local X,Y,e as USUAL
e := oDCOCX_Exontrol1:[ElementFromPoint,-1,-1]
X := -1
Y := -1
oDCOCX_Exontrol1:PointToPosition(X,Y)
OutputDebugString(String2Psz( AsString(e) ))
OutputDebugString(String2Psz( AsString(X) ))
OutputDebugString(String2Psz( AsString(Y) ))
RETURN NIL
local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element 1",nil,nil)
var_Elements:Add("Element 2",128,64)
oDCOCX_Exontrol1:FitToClient()
oDCOCX_Exontrol1:EndUpdate()
|
|
71
|
How can I determine the position the user clicks within the element's boundaries (MouseMove event)

METHOD OCX_Exontrol1MouseMove(Button, Shift, X, Y) CLASS MainDialog
// MouseMove event - Occurs when the user moves the mouse.
local e as USUAL
e := oDCOCX_Exontrol1:[ElementFromPoint,X,Y]
oDCOCX_Exontrol1:PointToPosition(X,Y)
OutputDebugString(String2Psz( AsString(e) ))
OutputDebugString(String2Psz( AsString(X) ))
OutputDebugString(String2Psz( AsString(Y) ))
RETURN NIL
local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element 1",nil,nil)
var_Elements:Add("Element 2",128,64)
oDCOCX_Exontrol1:FitToClient()
oDCOCX_Exontrol1:EndUpdate()
|
|
70
|
How can I convert the screen position (mouse) to surface position

METHOD OCX_Exontrol1MouseMove(Button, Shift, X, Y) CLASS MainDialog
// MouseMove event - Occurs when the user moves the mouse.
OutputDebugString(String2Psz( "Point " ))
OutputDebugString(String2Psz( AsString(X) ))
OutputDebugString(String2Psz( AsString(Y) ))
oDCOCX_Exontrol1:PointToPosition(X,Y)
OutputDebugString(String2Psz( "Position " ))
OutputDebugString(String2Psz( AsString(X) ))
OutputDebugString(String2Psz( AsString(Y) ))
RETURN NIL
local var_Elements as IElements
local var_Links as ILinks
oDCOCX_Exontrol1:BeginUpdate()
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>1",nil,nil)
var_Elements:Add("Element <sha ;;0>2",164,64)
var_Elements:Add("Element <sha ;;0>3",0,132)
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,1],nil)
oDCOCX_Exontrol1:FitToClient()
oDCOCX_Exontrol1:AxisStyle := exLinesSolid
oDCOCX_Exontrol1:AxisColor := RGB(128,128,128)
oDCOCX_Exontrol1:EndUpdate()
|
|
69
|
Is is possible to show just the positive coordinates

local var_Elements as IElements
local var_Links as ILinks
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:Coord := exAllowPositiveOnly | exCartesian
oDCOCX_Exontrol1:AxisColor := RGB(128,128,128)
oDCOCX_Exontrol1:AxisStyle := exLinesThick | exLinesDot
oDCOCX_Exontrol1:ShowLinks := exShowLinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>1",nil,nil)
var_Elements:Add("Element <sha ;;0>2",164,64)
var_Elements:Add("Element <sha ;;0>3",0,132)
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,2],nil)
oDCOCX_Exontrol1:FitToClient()
oDCOCX_Exontrol1:EndUpdate()
|
|
68
|
Cartesian coordinates (positive coordinates are shown top-right to the origin)

local var_Elements as IElements
local var_Links as ILinks
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:Coord := exCartesian
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>1",nil,nil)
var_Elements:Add("Element <sha ;;0>2",164,64)
var_Elements:Add("Element <sha ;;0>3",0,132)
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,1],nil)
oDCOCX_Exontrol1:FitToClient()
oDCOCX_Exontrol1:EndUpdate()
|
|
67
|
Default coordinates (positive coordinates are shown bottom-right to the origin)

local var_Elements as IElements
local var_Links as ILinks
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:Coord := exDefCoord
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>1",nil,nil)
var_Elements:Add("Element <sha ;;0>2",164,64)
var_Elements:Add("Element <sha ;;0>3",0,132)
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,1],nil)
oDCOCX_Exontrol1:FitToClient()
oDCOCX_Exontrol1:EndUpdate()
|
|
66
|
Is it possible to customize the path of the links orthogonally similar with Microsoft Visio tool

local var_Elements as IElements
local var_Links as ILinks
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowLinkControlPoint := exOrthoArrange | exMiddleControlPoint | exControlPoint | exEndControlPoint | exStartControlPoint
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>1",nil,nil)
var_Elements:Add("Element <sha ;;0>2",164,64)
var_Elements:Add("Element <sha ;;0>3",0,132)
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,1],nil)
oDCOCX_Exontrol1:Zoom := 200
oDCOCX_Exontrol1:FitToClient()
oDCOCX_Exontrol1:EndUpdate()
|
|
65
|
Does your control supports OLE Drag and Drop
METHOD OCX_Exontrol1OLEDragDrop(Data, Effect, Button, Shift, X, Y) CLASS MainDialog
// OLEDragDrop event - Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur.
OutputDebugString(String2Psz( AsString(Data) ))
RETURN NIL
METHOD OCX_Exontrol1OLEStartDrag(Data, AllowedEffects) CLASS MainDialog
// OLEStartDrag event - Occurs when the OLEDrag method is called.
// Data.SetData("some data to drag")
RETURN NIL
local var_Element,var_Element1 as IElement
local var_Elements as IElements
local var_Pool as IPool
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:OLEDropMode := exOLEDropManual
var_Pool := oDCOCX_Exontrol1:Pools:Add(-250,-150,500,250)
var_Pool:[Lane,exLaneHorizontal]:Children:Count := 2
var_Pool:[Lane,exLaneVertical]:Children:Count := 1
var_Elements := oDCOCX_Exontrol1:Elements
var_Element := var_Elements:Add("Click the Element wait for .5 second until + cursor is shown, to start <b>OLE Drag and Drop</b>",nil,nil)
var_Element:CaptionSingleLine := exCaptionWordWrap
var_Element:AutoSize := false
var_Element:X := -125
var_Element:Y := -105
var_Element:Width := 256
var_Element:Height := 56
var_Element1 := var_Elements:Add("Click the Element wait for .5 second until + cursor is shown, to start <b>OLE Drag and Drop</b>",nil,nil)
var_Element1:CaptionSingleLine := exCaptionWordWrap
var_Element1:AutoSize := false
var_Element1:X := -125
var_Element1:Width := 256
var_Element1:Height := 56
oDCOCX_Exontrol1:EndUpdate()
|
|
64
|
Is it possible to disable customizing the path of a specified link

local var_Elements as IElements
local var_Link as ILink
local var_Links as ILinks
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowLinkControlPoint := 0xffffff80 | exAllowChangeTo | exAllowChangeFrom | exOrthoArrange | exMiddleControlPoint | exControlPoint | exEndControlPoint | exStartControlPoint
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>A",nil,nil)
var_Elements:Add("Element <sha ;;0>B",164,64)
var_Elements:Add("Element <sha ;;0>B",0,132)
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil):CustomPath := "0.5,0.25,0.5,.75"
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,2],nil):CustomPath := "0.5,0.25,0.5,.75"
var_Link := var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,1],nil)
var_Link:ShowLinkType := exLinkRound
var_Link:StartPos := LeftAlignment
var_Link:Color := RGB(128,128,128)
var_Link:AllowControlPoint := exNoControlPoint
oDCOCX_Exontrol1:Zoom := 200
oDCOCX_Exontrol1:FitToClient()
oDCOCX_Exontrol1:EndUpdate()
|
|
63
|
How do I let user customizes the link's path

local var_Elements as IElements
local var_Link as ILink
local var_Links as ILinks
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowLinkControlPoint := 0xffffff80 | exAllowChangeTo | exAllowChangeFrom | exOrthoArrange | exMiddleControlPoint | exControlPoint | exEndControlPoint | exStartControlPoint
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>A",nil,nil)
var_Elements:Add("Element <sha ;;0>B",164,64)
var_Elements:Add("Element <sha ;;0>B",0,132)
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil):CustomPath := "0.5,0.25,0.5,.75"
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,2],nil):CustomPath := "0.5,0.25,0.5,.75"
var_Link := var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,1],nil)
var_Link:ShowLinkType := exLinkRound
var_Link:StartPos := LeftAlignment
oDCOCX_Exontrol1:Zoom := 200
oDCOCX_Exontrol1:FitToClient()
oDCOCX_Exontrol1:EndUpdate()
|
|
62
|
How can I generate a picture/image/graph from my diagram
local var_Elements as IElements
local var_Links as ILinks
local var_CopyTo as USUAL
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element A",nil,nil):ID := "A"
var_Elements:Add("Element B",nil,nil):ID := "B"
var_Elements:Add("Element C",nil,nil):ID := "C"
var_Elements:Add("Element D",nil,nil):ID := "D"
var_Elements:Add("Element E",nil,nil):ID := "E"
var_Elements:Add("Element E",nil,nil):ID := "F"
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"B"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"B"],oDCOCX_Exontrol1:Elements:[Item,"D"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"B"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"E"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"F"],nil)
oDCOCX_Exontrol1:[DefArrange,exDefArrangeCompact] := false
oDCOCX_Exontrol1:Arrange(nil)
var_CopyTo := oDCOCX_Exontrol1:[CopyTo,"c:/temp/xtest.jpg"]
OutputDebugString(String2Psz( "!!!check the file c:/temp/xtest.jpg!!!" ))
|
|
61
|
How can I generate a picture/image/graph from my diagram
local var_Elements as IElements
local var_Print as IExPrint
local var_Links as ILinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element A",nil,nil):ID := "A"
var_Elements:Add("Element B",nil,nil):ID := "B"
var_Elements:Add("Element C",nil,nil):ID := "C"
var_Elements:Add("Element D",nil,nil):ID := "D"
var_Elements:Add("Element E",nil,nil):ID := "E"
var_Elements:Add("Element E",nil,nil):ID := "F"
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"B"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"B"],oDCOCX_Exontrol1:Elements:[Item,"D"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"B"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"E"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"F"],nil)
oDCOCX_Exontrol1:[DefArrange,exDefArrangeCompact] := false
oDCOCX_Exontrol1:Arrange(nil)
// Generate Source for 'ExPrint 1.0 Control Library(ExPrint.dll)' server from Tools\Automation Server...
var_Print := IExPrint{"Exontrol.Print"}
var_Print:PrintExt := oDCOCX_Exontrol1
var_Print:CopyTo("c:/temp/xtest.jpg")
OutputDebugString(String2Psz( "!!!check the file c:/temp/xtest.jpg!!!" ))
|
|
60
|
How can I print the component
local var_Element,var_Element1 as IElement
local var_Elements as IElements
local var_Print as IExPrint
local var_Link,var_Link1,var_Link2 as ILink
local var_Links as ILinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>A",nil,nil)
var_Elements:Add("Element <sha ;;0>B",0,76)
var_Element := var_Elements:Add("Element <sha ;;0>C",-76,32)
var_Element:AutoSize := false
var_Element:Height := 32
var_Element1 := var_Elements:Add("Element <sha ;;0>D",76,32)
var_Element1:AutoSize := false
var_Element1:Height := 32
var_Links := oDCOCX_Exontrol1:Links
var_Link := var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Link:StartPos := CenterAlignment
var_Link:EndPos := CenterAlignment
var_Link1 := var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,2],oDCOCX_Exontrol1:Elements:[Item,1],nil)
var_Link1:StartPos := CenterAlignment
var_Link1:EndPos := CenterAlignment
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,4],nil)
var_Link2 := var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,4],oDCOCX_Exontrol1:Elements:[Item,3],nil)
var_Link2:StartPos := LeftAlignment
var_Link2:EndPos := RightAlignment
// Generate Source for 'ExPrint 1.0 Control Library(ExPrint.dll)' server from Tools\Automation Server...
var_Print := IExPrint{"Exontrol.Print"}
var_Print:PrintExt := oDCOCX_Exontrol1
var_Print:Preview()
|
|
59
|
How can I show direct-links

local var_Elements as IElements
local var_Links as ILinks
oDCOCX_Exontrol1:ShowLinksType := exLinkDirect
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element A",nil,nil):ID := "A"
var_Elements:Add("Element B",128,64):ID := "B"
var_Elements:Add("Element C",128,-64):ID := "C"
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"B"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
|
|
58
|
How can I show straight-links

local var_Elements as IElements
local var_Links as ILinks
oDCOCX_Exontrol1:ShowLinksType := exLinkStraight
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element A",nil,nil):ID := "A"
var_Elements:Add("Element B",128,64):ID := "B"
var_Elements:Add("Element C",128,-64):ID := "C"
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"B"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
|
|
57
|
How can I show round-links

local var_Elements as IElements
local var_Links as ILinks
oDCOCX_Exontrol1:ShowLinksType := exLinkRound
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element A",nil,nil):ID := "A"
var_Elements:Add("Element B",128,64):ID := "B"
var_Elements:Add("Element C",128,-64):ID := "C"
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"B"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
|
|
56
|
I've tried to insert a "<br>" in the Caption property text and it just ignores it

local var_Element as IElement
local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
var_Elements := oDCOCX_Exontrol1:Elements
var_Element := var_Elements:Add("caption",nil,nil)
var_Element:CaptionSingleLine := exCaptionWordWrap
var_Element:Caption := "first caption<br>second caption<br>third caption"
oDCOCX_Exontrol1:EndUpdate()
|
|
55
|
How do I align the extra-caption

local var_Element as IElement
local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
var_Elements := oDCOCX_Exontrol1:Elements
var_Element := var_Elements:Add("caption",nil,nil)
var_Element:CaptionAlign := exTopLeft
var_Element:AutoSize := false
var_Element:Width := 128
var_Element:Height := 64
var_Element:ExtraCaption := "extra-caption"
var_Element:ExtraCaptionAlign := exBottomRight
oDCOCX_Exontrol1:EndUpdate()
|
|
54
|
How can I add an extra caption

local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("caption",nil,nil):ExtraCaption := "extra-caption"
oDCOCX_Exontrol1:EndUpdate()
|
|
53
|
I am using the reserve-neighbors feature, the question is how to shift left/right the neighbors instead of up/down
local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowMoveNeighbors := exMoveNeighborsHorizontally
oDCOCX_Exontrol1:[DefArrange,exDefArrangeDir] := 1
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>A",nil,nil)
var_Elements:Add("Element <sha ;;0>B ( move it )",16,32)
var_Elements:Add("Element <sha ;;0>C",128,0)
oDCOCX_Exontrol1:EndUpdate()
|
|
52
|
I am using the reserve-neighbors feature, the question is if possible to specify the distance between neighbors
local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowMoveNeighbors := exMoveNeighborsVertically
oDCOCX_Exontrol1:[DefArrange,exDefArrangeDX] := 0
oDCOCX_Exontrol1:[DefArrange,exDefArrangeDY] := 0
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>A",nil,nil)
var_Elements:Add("Element <sha ;;0>B ( move it )",0,32)
var_Elements:Add("Element <sha ;;0>C",0,64)
oDCOCX_Exontrol1:EndUpdate()
|
|
51
|
How do I enable the reserve-neighbors feature
local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowMoveNeighbors := exMoveNeighborsVertically
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>A",nil,nil)
var_Elements:Add("Element <sha ;;0>B ( move it )",0,32)
var_Elements:Add("Element <sha ;;0>C",0,64)
oDCOCX_Exontrol1:EndUpdate()
|
|
50
|
I've noticed that recently, the elements get compacted once the Arrange method is performed. How can I prevent that

local var_Elements as IElements
local var_Links as ILinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element A",nil,nil):ID := "A"
var_Elements:Add("Element B",nil,nil):ID := "B"
var_Elements:Add("Element C",nil,nil):ID := "C"
var_Elements:Add("Element D",nil,nil):ID := "D"
var_Elements:Add("Element E",nil,nil):ID := "E"
var_Elements:Add("Element E",nil,nil):ID := "F"
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"B"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"B"],oDCOCX_Exontrol1:Elements:[Item,"D"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"B"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"E"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"F"],nil)
oDCOCX_Exontrol1:[DefArrange,exDefArrangeCompact] := false
oDCOCX_Exontrol1:Arrange(nil)
|
|
49
|
How can I move an element to a specified lane/phase/pool

local var_Element,var_Element1 as IElement
local var_Pool as IPool
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:[DefPoolHeaderCaptionFormat,true] := "<fgcolor 808080>Faza <off -4><b><font ;6>%i"
oDCOCX_Exontrol1:[DefPoolHeaderCaptionFormat,false] := "<fgcolor 808080>Culoar <off -4><b><font ;6>%i"
var_Pool := oDCOCX_Exontrol1:Pools:Add(-100,-100,250,180)
var_Pool:[Lane,exLaneHorizontal]:Children:Count := 3
var_Pool:[Lane,exLaneVertical]:Children:Count := 3
var_Pool:[Lane,exLaneVertical]:Children:[Item,1]:Header:Caption := "<fgcolor FF0000><b>NEW"
var_Element := oDCOCX_Exontrol1:Elements:Add("element 1",200,200)
var_Element:[LaneID,true] := "0:H.0,0:V.0"
var_Element1 := oDCOCX_Exontrol1:Elements:Add("element 2",200,200)
var_Element1:[LaneID,true] := "0:H.2,0:V.2"
oDCOCX_Exontrol1:EndUpdate()
|
|
48
|
Is it possible to add a link to show from bottom/down to top/up, rather that right to left (method-2)

METHOD OCX_Exontrol1AddLink(Link) CLASS MainDialog
// AddLink event - A new link has been added to the links collection.
RETURN NIL
local var_Elements as IElements
local var_Links as ILinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>A",nil,nil)
var_Elements:Add("Element <sha ;;0>B",48,48)
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
|
|
47
|
Is it possible to add a link to show from bottom/down to top/up, rather that right to left (method-1)

local var_Elements as IElements
local var_Link as ILink
local var_Links as ILinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>A",nil,nil)
var_Elements:Add("Element <sha ;;0>B",48,48)
var_Links := oDCOCX_Exontrol1:Links
var_Link := var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Link:StartPos := DownAlignment
var_Link:EndPos := UpAlignment
|
|
46
|
How do I enable the cross link support ( mixed )

local var_Element,var_Element1 as IElement
local var_Elements as IElements
local var_Link,var_Link1,var_Link2 as ILink
local var_Links as ILinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>A",nil,nil)
var_Elements:Add("Element <sha ;;0>B",0,76)
var_Element := var_Elements:Add("Element <sha ;;0>C",-76,32)
var_Element:AutoSize := false
var_Element:Height := 32
var_Element1 := var_Elements:Add("Element <sha ;;0>D",76,32)
var_Element1:AutoSize := false
var_Element1:Height := 32
var_Links := oDCOCX_Exontrol1:Links
var_Link := var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Link:StartPos := CenterAlignment
var_Link:EndPos := CenterAlignment
var_Link1 := var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,2],oDCOCX_Exontrol1:Elements:[Item,1],nil)
var_Link1:StartPos := CenterAlignment
var_Link1:EndPos := CenterAlignment
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,4],nil)
var_Link2 := var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,4],oDCOCX_Exontrol1:Elements:[Item,3],nil)
var_Link2:StartPos := LeftAlignment
var_Link2:EndPos := RightAlignment
oDCOCX_Exontrol1:ShowLinks := exShowCrossLinksMixt | exShowExtendedLinks
|
|
45
|
How do I enable the cross link support ( triangular )

local var_Element,var_Element1 as IElement
local var_Elements as IElements
local var_Link,var_Link1,var_Link2 as ILink
local var_Links as ILinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>A",nil,nil)
var_Elements:Add("Element <sha ;;0>B",0,76)
var_Element := var_Elements:Add("Element <sha ;;0>C",-76,32)
var_Element:AutoSize := false
var_Element:Height := 32
var_Element1 := var_Elements:Add("Element <sha ;;0>D",76,32)
var_Element1:AutoSize := false
var_Element1:Height := 32
var_Links := oDCOCX_Exontrol1:Links
var_Link := var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Link:StartPos := CenterAlignment
var_Link:EndPos := CenterAlignment
var_Link1 := var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,2],oDCOCX_Exontrol1:Elements:[Item,1],nil)
var_Link1:StartPos := CenterAlignment
var_Link1:EndPos := CenterAlignment
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,4],nil)
var_Link2 := var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,4],oDCOCX_Exontrol1:Elements:[Item,3],nil)
var_Link2:StartPos := LeftAlignment
var_Link2:EndPos := RightAlignment
oDCOCX_Exontrol1:ShowLinks := exShowCrossLinksTriangle | exShowExtendedLinks
|
|
44
|
How do I enable the cross link support ( rectangular )

local var_Element,var_Element1 as IElement
local var_Elements as IElements
local var_Link,var_Link1,var_Link2 as ILink
local var_Links as ILinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>A",nil,nil)
var_Elements:Add("Element <sha ;;0>B",0,76)
var_Element := var_Elements:Add("Element <sha ;;0>C",-76,32)
var_Element:AutoSize := false
var_Element:Height := 32
var_Element1 := var_Elements:Add("Element <sha ;;0>D",76,32)
var_Element1:AutoSize := false
var_Element1:Height := 32
var_Links := oDCOCX_Exontrol1:Links
var_Link := var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Link:StartPos := CenterAlignment
var_Link:EndPos := CenterAlignment
var_Link1 := var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,2],oDCOCX_Exontrol1:Elements:[Item,1],nil)
var_Link1:StartPos := CenterAlignment
var_Link1:EndPos := CenterAlignment
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,3],oDCOCX_Exontrol1:Elements:[Item,4],nil)
var_Link2 := var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,4],oDCOCX_Exontrol1:Elements:[Item,3],nil)
var_Link2:StartPos := LeftAlignment
var_Link2:EndPos := RightAlignment
oDCOCX_Exontrol1:ShowLinks := exShowCrossLinksRect | exShowExtendedLinks
|
|
43
|
How do I show a link frmo bottom to top, or reverse, not from left to right

local var_Elements as IElements
local var_Link as ILink
local var_Links as ILinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>A",nil,nil)
var_Elements:Add("Element <sha ;;0>B",0,64)
var_Links := oDCOCX_Exontrol1:Links
var_Link := var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Link:StartPos := CenterAlignment
var_Link:EndPos := CenterAlignment
|
|
42
|
Is it possible to control the links, so that they are always centered

local var_Elements as IElements
local var_Links as ILinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element A",nil,nil):ID := "A"
var_Elements:Add("Element B",nil,nil):ID := "B"
var_Elements:Add("Element C",nil,nil):ID := "C"
var_Elements:Add("Element D",nil,nil):ID := "D"
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"B"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"B"],oDCOCX_Exontrol1:Elements:[Item,"D"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"B"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
oDCOCX_Exontrol1:ShowLinks := exShowLinks
oDCOCX_Exontrol1:[DefArrange,exDefArrangeDir] := 1
oDCOCX_Exontrol1:Arrange(nil)
|
|
41
|
What options to align the elements do I have if I use Arrange method

local var_Elements as IElements
local var_Links as ILinks
local h1,h2,h3 as USUAL
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:ShowGridLines := true
var_Elements := oDCOCX_Exontrol1:Elements
h1 := var_Elements:Add("Top Alignment",nil,nil):ID
var_Elements:Add("Element",nil,nil)
var_Elements:Add("Element",nil,nil)
var_Elements:Add("Element",nil,nil)
h2 := var_Elements:Add("Center Alignment",nil,96):ID
var_Elements:Add("Element",nil,96)
var_Elements:Add("Element",nil,96)
var_Elements:Add("Element",nil,96)
h3 := var_Elements:Add("Bottom Alignment",nil,178):ID
var_Elements:Add("Element",nil,192)
var_Elements:Add("Element",nil,192)
var_Elements:Add("Element",nil,192)
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,3],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,2],oDCOCX_Exontrol1:Elements:[Item,4],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,2],oDCOCX_Exontrol1:Elements:[Item,3],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,5],oDCOCX_Exontrol1:Elements:[Item,6],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,5],oDCOCX_Exontrol1:Elements:[Item,7],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,6],oDCOCX_Exontrol1:Elements:[Item,8],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,6],oDCOCX_Exontrol1:Elements:[Item,7],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,9],oDCOCX_Exontrol1:Elements:[Item,10],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,9],oDCOCX_Exontrol1:Elements:[Item,11],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,10],oDCOCX_Exontrol1:Elements:[Item,12],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,10],oDCOCX_Exontrol1:Elements:[Item,11],nil)
oDCOCX_Exontrol1:[DefArrange,exDefArrangeAlign] := 0
oDCOCX_Exontrol1:Arrange(h1)
oDCOCX_Exontrol1:[DefArrange,exDefArrangeAlign] := 1
oDCOCX_Exontrol1:Arrange(h2)
oDCOCX_Exontrol1:[DefArrange,exDefArrangeAlign] := 2
oDCOCX_Exontrol1:Arrange(h3)
oDCOCX_Exontrol1:EndUpdate()
|
|
40
|
Is there an auto-arrange feature that will display the flow-chart centered and zoomed correctly after we are finished building it

local var_Elements as IElements
local var_Links as ILinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element A",nil,nil):ID := "A"
var_Elements:Add("Element B",nil,nil):ID := "B"
var_Elements:Add("Element C",nil,nil):ID := "C"
var_Elements:Add("Element D",nil,nil):ID := "D"
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"B"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"B"],oDCOCX_Exontrol1:Elements:[Item,"D"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"B"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
oDCOCX_Exontrol1:Arrange(nil)
|
|
39
|
Is it possible to change the distance between elements, when calling the Arrange method

local var_Elements as IElements
local var_Links as ILinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element A",nil,nil):ID := "A"
var_Elements:Add("Element B",nil,nil):ID := "B"
var_Elements:Add("Element C",nil,nil):ID := "C"
var_Elements:Add("Element D",nil,nil):ID := "D"
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"B"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"B"],oDCOCX_Exontrol1:Elements:[Item,"D"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"B"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
oDCOCX_Exontrol1:[DefArrange,exDefArrangeDX] := 0
oDCOCX_Exontrol1:[DefArrange,exDefArrangeDY] := 0
oDCOCX_Exontrol1:Arrange(nil)
|
|
38
|
How do I organize vertically the elements

local var_Elements as IElements
local var_Links as ILinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element A",nil,nil):ID := "A"
var_Elements:Add("Element B",nil,nil):ID := "B"
var_Elements:Add("Element C",nil,nil):ID := "C"
var_Elements:Add("Element D",nil,nil):ID := "D"
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"B"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"A"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"B"],oDCOCX_Exontrol1:Elements:[Item,"D"],nil)
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,"B"],oDCOCX_Exontrol1:Elements:[Item,"C"],nil)
oDCOCX_Exontrol1:ShowLinksType := exLinkStraight
oDCOCX_Exontrol1:[DefArrange,exDefArrangeDir] := 1
oDCOCX_Exontrol1:Arrange(nil)
|
|
37
|
How can I add programatically a link

local var_Elements as IElements
local var_Links as ILinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>A",nil,nil)
var_Elements:Add("Element <sha ;;0>B",96,24)
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
|
|
36
|
How do I get the link from the cursor
METHOD OCX_Exontrol1MouseMove(Button, Shift, X, Y) CLASS MainDialog
// MouseMove event - Occurs when the user moves the mouse.
local l as USUAL
l := oDCOCX_Exontrol1:[LinkFromPoint,-1,-1]
OutputDebugString(String2Psz( AsString(l) ))
RETURN NIL
local var_Elements as IElements
local var_Links as ILinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element <sha ;;0>A",nil,nil)
var_Elements:Add("Element <sha ;;0>B",96,24)
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,2],nil)
|
|
35
|
Is there a way to create a link which has the same start and end element

local var_Elements as IElements
local var_Links as ILinks
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element",nil,nil)
var_Links := oDCOCX_Exontrol1:Links
var_Links:Add(oDCOCX_Exontrol1:Elements:[Item,1],oDCOCX_Exontrol1:Elements:[Item,1],nil)
|
|
34
|
How can I show the pool's caption not-rotated or mirrored

local var_Pool as IPool
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowDesignHeader := exDesignHeaderSingle
var_Pool := oDCOCX_Exontrol1:Pools:Add(-150,-150,300,150)
var_Pool:HeaderCaptionSupportRotate := false
var_Pool:[HeaderSize,exHeaderLeft] := 48
var_Pool:[HeaderSize,exHeaderRight] := 48
var_Pool:[Lane,exLaneHorizontal]:Children:Count := 3
oDCOCX_Exontrol1:EndUpdate()
|
|
33
|
How can I prevent creating sub-lanes or sub-phases

local var_Pool as IPool
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:AllowDesignHeader := exDesignHeaderSingle
var_Pool := oDCOCX_Exontrol1:Pools:Add(-150,-150,300,150)
var_Pool:[HeaderSize,exHeaderLeft] := 32
var_Pool:[HeaderSize,exHeaderRight] := 32
var_Pool:[Lane,exLaneHorizontal]:Children:Count := 3
oDCOCX_Exontrol1:EndUpdate()
|
|
32
|
How do I show a complete frame/border around the header

local var_Lanes as ILanes
local var_Pool as IPool
oDCOCX_Exontrol1:BeginUpdate()
var_Pool := oDCOCX_Exontrol1:Pools:Add(-150,-150,300,150)
var_Pool:[HeaderSize,exHeaderTop] := 32
var_Pool:[HeaderSize,exHeaderBottom] := 32
var_Lanes := var_Pool:[Lane,exLaneVertical]:Children
var_Lanes:Count := 3
var_Lanes:[Item,1]:Header:Pattern:Type := exPatternFrameThick
oDCOCX_Exontrol1:EndUpdate()
|
|
31
|
How do I show a complete frame/border around the lane

local var_Lanes as ILanes
local var_Pool as IPool
oDCOCX_Exontrol1:BeginUpdate()
var_Pool := oDCOCX_Exontrol1:Pools:Add(-150,-150,300,150)
var_Pool:[HeaderSize,exHeaderTop] := 32
var_Pool:[HeaderSize,exHeaderBottom] := 32
var_Lanes := var_Pool:[Lane,exLaneVertical]:Children
var_Lanes:Count := 3
var_Lanes:[Item,1]:Pattern:Type := exPatternFrameThick
oDCOCX_Exontrol1:EndUpdate()
|
|
30
|
How can I define sub-lanes

local var_Lanes as ILanes
local var_Pool as IPool
oDCOCX_Exontrol1:BeginUpdate()
var_Pool := oDCOCX_Exontrol1:Pools:Add(-150,-150,300,250)
var_Pool:[HeaderSize,exHeaderTop] := 32
var_Pool:[HeaderSize,exHeaderBottom] := 32
var_Lanes := var_Pool:[Lane,exLaneVertical]:Children
var_Lanes:Count := 3
var_Lanes:[Item,1]:Children:Count := 2
oDCOCX_Exontrol1:EndUpdate()
|
|
29
|
How can I add default lanes when the user creates a new pool
METHOD OCX_Exontrol1AddPool(Pool) CLASS MainDialog
// AddPool event - A new pool has been added to the surface.
// Pool.HeaderSize(1) = 24
// Pool.HeaderVisible(0) = False
// Pool.HeaderVisible(1) = True
// Pool.HeaderVisible(2) = False
// Pool.HeaderVisible(3) = False
// Pool.Lane(1).Children.Count = 2
RETURN NIL
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:Pools:Add(-100,-100,250,250)
oDCOCX_Exontrol1:EndUpdate()
|
|
28
|
How do I prevent showing headers when the user creates new pools

METHOD OCX_Exontrol1AddPool(Pool) CLASS MainDialog
// AddPool event - A new pool has been added to the surface.
RETURN NIL
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:Pools:Add(-100,-100,250,250):[Lane,exLaneHorizontal]:Children:Count := 3
oDCOCX_Exontrol1:EndUpdate()
|
|
27
|
How can I display icons on headers

local var_Lanes as ILanes
local var_Pool as IPool
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
var_Pool := oDCOCX_Exontrol1:Pools:Add(-100,-100,250,250)
var_Pool:[HeaderVisible,exHeaderLeft] := false
var_Pool:[HeaderVisible,exHeaderRight] := false
var_Pool:[HeaderVisible,exHeaderBottom] := false
var_Pool:[HeaderSize,exHeaderTop] := 24
var_Lanes := var_Pool:[Lane,exLaneVertical]:Children
var_Lanes:Count := 3
var_Lanes:[Item,0]:Header:Caption := "<img>1</img> A"
var_Lanes:[Item,1]:Header:Caption := "<img>2</img> B"
var_Lanes:[Item,2]:Header:Caption := "<img>3</img> C"
oDCOCX_Exontrol1:EndUpdate()
|
|
26
|
How do I change the Lane and Phase strings being displayed on the lanes

local var_Pool as IPool
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:[DefPoolHeaderCaptionFormat,true] := "<fgcolor 808080>Faza <off -4><b><font ;6>%i"
oDCOCX_Exontrol1:[DefPoolHeaderCaptionFormat,false] := "<fgcolor 808080>Culoar <off -4><b><font ;6>%i"
var_Pool := oDCOCX_Exontrol1:Pools:Add(-100,-100,250,250)
var_Pool:[Lane,exLaneHorizontal]:Children:Count := 3
var_Pool:[Lane,exLaneVertical]:Children:Count := 3
var_Pool:[Lane,exLaneVertical]:Children:[Item,1]:Header:Caption := "<fgcolor FF0000><b>NEW"
oDCOCX_Exontrol1:EndUpdate()
|
|
25
|
How can I enlarge the node while AutoSize property is True (method 2)

local var_Element as IElement
oDCOCX_Exontrol1:[Background,exElementBackColor] := RGB(255,255,255)
var_Element := oDCOCX_Exontrol1:Elements:Add("Element",0,0):Copy(nil,nil)
var_Element:Caption := "Enlarged Element"
var_Element:InflateSize := 16
|
|
24
|
How can I enlarge the node while AutoSize property is True (method 1)

local var_Element as IElement
oDCOCX_Exontrol1:[Background,exElementBackColor] := RGB(255,255,255)
var_Element := oDCOCX_Exontrol1:Elements:Add("Element",0,0):Copy(nil,nil)
var_Element:Caption := "Enlarged Element"
var_Element:[Padding,exPaddingAll] := 16
|
|
23
|
How can I get the lane of the element

local var_Element as IElement
local lane as USUAL
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:Pools:Add(-150,-150,500,250):[Lane,exLaneHorizontal]:Children:Count := 3
var_Element := oDCOCX_Exontrol1:Elements:Add("Element",nil,nil)
var_Element:CenterOnLane(false)
lane := var_Element:[LaneID,false]
OutputDebugString(String2Psz( oDCOCX_Exontrol1:[LaneByID,lane]:Header:Caption ))
oDCOCX_Exontrol1:EndUpdate()
|
|
22
|
How can I define a different shape for elements

METHOD OCX_Exontrol1AddElement(Element) CLASS MainDialog
// AddElement event - A new element has been added to the surface.
RETURN NIL
local var_Appearance as IAppearance
local var_Element,var_Element1,var_Element2,var_Element3,var_Element4 as IElement
local var_Elements as IElements
oDCOCX_Exontrol1:BeginUpdate()
var_Appearance := oDCOCX_Exontrol1:VisualAppearance
var_Appearance:Add(1,"gBFLBCJwBAEHhEJAAChABAQDg6AADACAxRDQNABQKAAzQFAYahuHKGAAGEaBYgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQwDiAUIjIK8IhkGIcZAGIBJCjWGodQLOEgwHIERQjEyUJAGGYqEjaO41SpAdI0PCxUScACnDQiegJRgmQ4cTJSchSAKENx1JaeYReewwAqNd5TRwNIiydZUIhqGC1YRte4ZWiCWoJVzSVDLfbgAT4X60IIlCi5Mi6MIgDZJFDUNLUdRBMKNJ7qagaWoWOaQRbmAQQTRYLQ/TiEXZDQRAAyLJIWVRQWTAAKVbw1LiEcznGCcejzIIDaZpOh4DplWzTOgALjta4IRpvNwAbIAF4gBqsLyXXLcdQyORMiwbxZgSDhgnQbJFC6F5JhECA8CADwIgMeQnmoQJlh0eAfGcXYZjwccOHiWx/moAJ6jed4DC2dJnnmQRxBcKABBoWAcHULZLHyV4mmGOx0FmdpZAMAgQhEQBpBiRxBlQcgZFUdAMEYAxQDECBNgaUYglkCQKBGZANk0QgBgQXAQgcGI0FwJAHA6WI+DGDAjCiVg0g2Yw4mYNg7E0eJ1H+DpkAiYhBg6JApBYRMvDkJhGhKJIImEA4QledZ8H+FJlEEQhWBAJa8loRoCgkdhYBAExZHQKIXmUYRCFQI5mgWfZ4hMJpJC4boTGcCY0m0QJVBAIh2EIZZ5H4VIVAqeZ1H8M5oAmSg7g8TR1n4fQrmUQZCgqF5eEmYhYBgKQJiCD4PmaegKhWJZnAQDZkhqaYKFocYnGadZ8h+KJoiGQhfEIURAmKEAYAgeo1H8OZrAoeoyhGKYngaHInmuCpOjmKAkHMHo+iiSZxmKQoXkGCwWigRQlnqLh7jKSh7DYUYzm0CgAk+DIrFCAo3i6LYKnKWYuk6Wp4keKIqDsLh7BYLhJmaZo5mcYAijAOZtFsXpajubZLG6co8CSShtnYeJrGeVpzjwbxLnafI/mcK5ZnmPgtGuap+j6cIMB8CocDAK43AaQAwjwJwQkSaZsDcBI7jETBHBqRhxkibwWkCMQsgcG5Ii2TB+nkN5yEyJwjkqcJMh8DpKDKTIrB2TBmnyGwFkwMw8mcMpOmQbJbBiTwziyUxBDsc5sD8QJRnQKprEWTg0g0DxNlKMpsF8RpSHUTQ7BuUp0n0VxZi4MxrDSJ40DYDYHGKWJ2E2FxmyADYnGqMRBgeYh0FOLh9kccpcncJsVw7RdjvA2M4eovRmCSFkMwQIoAQEBA")
var_Appearance:Add(2,"gBFLBCJwBAEHhEJAAChABAIDg6AADACAxRDQNABQKAAzQFAYaBmG6GAAGEaBYgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQ1DAAUIjKLMIhmGAYJAGIBJCjWGodQLOEgwHIERQjEyUpIyVAkYw5HqNaQjICoJoSOwAU47IaCIAFJSpCygKKgSjhRpoAAyU5IUgVPC4XSbD6zYDqapaTheEQyDSJNr3DCMUTlFYYLrmaQKMhqZJhWjbFSWXUpJ4pSrLMIyfTwZRJGzIK7jabLIjaP6GUDhVaYbRUL46CiEb5AAJsVpCCZrYRJOYVdQeDYbQCNLDhHQIDqaA6kZRAdQ2bpMBznPSvbovDgLWhGYqhbLCNibRC+d4HNrCYIlCjpMw3CYGIOHOMRsm0OxFjSZppneHQNFcSwRAOaprjqY4dgYe4VgGWwADucRuHYCpdByYROH8AAOC8D4NgEXwYBWEZyGAWoHg2MRCECBAkFAGhGDGUB1ByBhQkUIAPgCRAMEIExhIuNhCEKBAlnAcwQgAYQXAIIRWEUFwJAGQ42CiCoihiLgugsYwDjSZ4MkICJWCaDZjgiZg6EIQQInSV4PmKeIyEKEBkBQDhEgwZBzjSd4SlEQJgk+E5khkRhIhSZA5FIUoVGWCQkl+FpkliTJnhXSYaFaGJOlEIhmC2ZoJgIZIaiWGYuG62IpDyT4TGSM5eGyCpmCnPIcCeQg+H6HZmnoAh6iAaBDjSL4hkUCgmgKHhlHmeIPh8BwKAqEohGkOgOHCI4pAmMoMhUKByj6CQUCkWoGhSKJpGkJoQiOJR6G4cYTmcSQuiKKRqEqPovhmBIJiCN4YEACQGFsN5lliToyiwbAKkKQoSGcWQ2HKERrhiJJvjLUR8leL5sDsBpQiUZZpDaO4eAACZWh+LYtDsSpejQbmJnIEAuEsLJvECRgLiSH46m2W4Gl+OxpFqWo0ECSR7lQaI9m8C4+nqO4uAIHp+B4MAJmcAAeC+YgenmPwwHwHInkKRYMDaWIQGmeh3AmPpxDsCJHkWbhBAIdZDmMGZXBmRZMHwVwikUIwam0MAMC4awiEmOYyHsXwkkIMp5jMLBMDKaRiiqEBsmkNwpkwc5MyiHRrEKfxCiobIaFsQgvmsTBvD2SJuAwNBYkKSh6GsRYbDUDQ7EyVZmEwDwFiKdQ6BQf5XnYDRjD6IIujIfppBgKRcl6BZZnYXYLBWLYpn0KpglqLAtAIZoOneBsZw9RJjnQ+AYQAgCAg=")
var_Appearance:Add(3,"gBFLBCJwBAEHhEJAAChABQsMACAADACAxRDQNABQKAAzQFAYawLBgABhGUZoJhUAIIRZGMIjFDcEwxC6NIpAWCYQgUNQCQiNAzxAKQchhD4ZAIkGY4ZhyA42SBAcbyDCEShoGqPRhmCg5UjmM4oQLSFDULC0fSBBIYaSGEY5QoqIYfArGQYQTRUPyUdoOBIACwLChWLA1CTZdowSKoYTXBq3IgqerIapmSYaV7YNh3VY1IR/JSVJYlaYJDoyNI4ThHc5xVLtfSfAiiJrxOKcTAAFJ0QKFUbRUz+OgBTpvaZxagaSpSG5WRpWEI5PAdN4zTa7YDsS67FiSG5oWpEFq2eAGdzlVLMMqhG5gAxqNKzbLfMCXfJIbyrBIcYLoXItCqFYskMTwxlgAY+haFZRlQZQ4HwHR3AoMx5jEch2lMfZGl8eY+jYXBvBsAAHFeRQDmuRR8nsSI2CoEgIEIRQBiQYwdAcUZIGUUIQhGGAGECRAhDYChGFERAMCgQheEcGQgHkEAwkICx2BCFoAj+B5iAiBgigiYhIgid4JkIQBwm2ChijiKgsguYpokYLYMmKQIiDYDgjgEAg6g6Y5InYPoPmOIAiEKEJFgkFIvhGYwIlIMoSTmAhOGgJJJC4UoSiUSIcncKZlp8WoOAOAxeF6FBlEkNhPGcZgJhYU4ZiMMweGoDAmkGfhuhWJoJDgIIUCYeZWGGHYkhkWhuB+ZYhEIcIUmcKZSHeIJmgoFgyCeaIBgKCoYCgGYSHiI5oEoQgsiKBgKCCH4SOAfoGiQaZKPmJ5jGCIJniiZgpk6DonGkKomgOHpnjqFoCiaawKioSYXg0eoGi6KZrBqIo6hgEIal6GosiwCpuDIBgsEqDJniYa4bVuFYkDqepKjCLQJiiR4XCyawGk+JpGgsZIXjabRbEKV4disSYwDCH5OlsIpWjmaA5HKUomCYOp+l6OgkhoUoWiMLpbH6bw7G0KRynOHYuGuXobhWB4MAaaoaimO52naB4hnkYInhERYLBAGAhnECw+H2BwhkmSg7kMMIqHyb49hAECAg=")
var_Appearance:Add(4,"gBFLBCJwBAEHhEJAAChABOIDg6AADACAxRDQNABQKAAzQFAYaBqGCGAAGEZRSgmFgAQhFcZQTCsBw7DCEYxjOAwFgmEQxDIOIBQSKYcwiGQaRrkIYgEiONoaR7HchSFIcIxPFKRBhkKYocjyG5GRoBcIyXAcRSYAB2Q4ESoKShePw5UDTcCzHR8RxEDKNRLpOQbDgOUZTWbVUaDKIsXzZCKHbZhG4YRp6CZKRpYEB1bYtKTRKqLKrpeTbOoSHolTbiIATTYlG4THyEZQrDIaDjOSIXZaGFzwSDWGgBJ60bRwHIaAxGWoHRxfEZVfBONQHMSBc5xa64JyHAImWrcUbWfaYYZ0AC6MRkK8cXABPQANixKZsCizE4DDbTYzjRheC2F4nnEOJRG0BRXEWOICEocByiyCJTiQOJVGYIQ8gofpDgsG5uF+ah6D2Xp+GGP5gkCfwRHofwOnuSB2heVpZnIUZQhAIQJBQBoRgwdAdEcIYVEIQhGGAMQDBCBJYEUGgNhCEMcHsXIkCIAAMIILQWAkAZDjYJIJiIWIeCqCRMHiNI/guYwIkYMoMmMSJWDaDZjgiTIzg6Yo4iIPoPGIdAmECChiFKXhGAQJIAmISgQCSSQ2E6E5lAkRhShSZRJFQOoVkCaRkAqFpQhIPhehCY54hYQoRCOYo+GaExOnmJhghqZhJjIYYbmaaJ0l+HJkiCYgtDGY5RkIegfmeSY6GOD4MnoBh1D2aBJkYbYhmcCgigaIhOloEJ3h0aATD4bgWCkQoehaGAnniHhNgwKI6HaConmiSYCF4I5niGQoLDmaoAiKKoaE6eJ2H+HZnFoeohigKwqCwGItmqA4ejIHgrkIHo+iuEA4h6PGMmIHo1i0LIKk6SoMCSWwcm2LAkisAAAgmQgLFYcw3myaxmkmG4GgsdIXjebYjjaVQIC0eQFAONADguBpqjaaIKlwGIuG4GwOkWOYAAqDoljqbIrmIJ41m4O5iGYK5FAwBp0ikag7mqbI+GoCwyEyPgpBCQwOj0KRBGKFgpnAbAjXWMQ8EaeIuG6a5SHWHZxFyBoIjEbA8FQCJJmiZAmmOORwHyCwXgkbwqn8LYoDKOZNAmJpinyOzTm8aZrBWH5QhGAxCCedBMm8L5Fi+fAEFCPgvksVp0h8NQBn8RpLi7NQKBALxLHyF43EaDRPDOMoxkqXp4kYaRLlMTQIDWbQeguR5iluBxCBgNBCH6dIJnaSZjF+LQZgGQSh5DOFEa4dQsi5GILsaA8ReBuHoEYZ4ZwkDFFwJEYo2grjcHOFUAoFA7gJFqFEDYrQyilC+PwNgyRBBLH4C8FIzxiD8CeBYEgUQ9CtAiEwYgtQyDqDWPUTjBhXBrCmAcKoJQ6iGF6DEMA8BpieA4BgMQdxDg9GSOkLQgRCjhHiDMV4Ewfh3AoGULIiBujRAuJ0c4+gEi4ASOkRAfhWgjCKKEFACCAg")
var_Appearance:Add(5,"gBFLBCJwBAEHhEJAAChABGgDg6AADACAxRDQNABQKAAzQFAYZBwGiGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziYBYJAKCQ3DTJUBjIKcIhiGsgAzAJIUaw1DqGY7nKZoRioAIoSAMM7DCKUQSLGyQZqBSCQGjsAI+OyHAiABSNJwtHygIRoKqqHg2PoiSAEUZhdRlHShKSqLQiaIRSDUJZsW5EIyjBZ8EznOqbJApOKrCgOTYaWbUdSxPTEUwTFiXJgmKRKIoiOAAY7IEgSFLsThrIKha5yDI4bxyAwXQjeYABbY0E4HQarcqzCrKGp/HYJXyAGgQHYkB5JAaQMBtGpoJrCeKQXDdVyXFwdET1BLZQA2HeUTTRVCScqnaTMZh8DgGxniKfYbngAxFkmVJAnSdougwDhRlMGZ1GEPR9HQapDGWWhyCMe4ugQDx9naYRvm6cQfAUJ47m8cofBYAZOGCHg2mETgCBCERAGkGJHEGVByBkUwUCSIgChAMQIE2BJRiQVQDAoEIWlWIxOgGBBcGyBQYlQXAkAcDpYh4KYKCKKI2CyC5ijONJvgySZ4lQWINkKCJmCWDpjkQaJPg+UA4joMYQiQI4eEYHAkgAYhKBgJJCh43JlAkEgwhSJA5E4VoVE6UQCFoL5lkkBhXhUCR5gYOQKAieYUneGZlEmJhfhqZYJFIWgQCWQp+F6GxigmHJ3BoJ4JmYMw7maKZSH6HxoAiQhvhwZ1VHYFAogmBIXiAZ55jKDIQgeChGG+G5BAoVJHiWaBYkIecznoOoeiMZYCj6IoYmcGhckeCophONoKh4aZagKLYrGkEZggeLJkCmThGDmZg5m6L4nmuOoCHaGJNnsBooAAIopCAcIZEiep2kqLwpnqCIviIBQLA4dolEECZakuK4sksYhYAgLZLOsQJLHuBBIjibR7haWYfGwawhAOJpmBuGpajuJRJkYbxAmgORynCOZvgqApejcAgIG4OYUA0e5em+PhokQXhKAYKx8AsCo+FEcJDA6D5MnwLwDkTWJulQQJuDEIphC2cQsHYbJEDCYJBAOLBrDIHwekUMBIiITgpmMcRhAOKYDgyRwnkyYwMjcK4cnAfAnCmSgzkoGhnkGZ45k6SIxjMTPIFCZOZEKSBxA0Fpui2b5LFoKIqGoaY/FKUY1gmdpQjOKxbBIV4zi0DQ6nmOhmFkUophCLILEMV5YiWCZkH+W5nl2HxfiiMwQmMTZOmqLhaLsx9iUH6JAMI1hCDjECFQawhghjBG2DseoGQzhNHwDwTAMAsgTEeCUZI1Q5jFHyLodYmWxB8GsPEVIPwxhSD6Awb4dgJD2HsAQQIoAQEB")
oDCOCX_Exontrol1:[Background,exElementBackColor] := RGB(255,255,255)
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Rectangular",0,0):Shape := exShapeRectangular
var_Elements:Add("Round",82,0):Shape := exShapeRound
var_Elements:Add("Rhomb",138,0):Shape := exShapeRhomb
var_Elements:Add("Circle",196,0):Shape := exShapeCircle
var_Element := var_Elements:Add("EBN 1",0,36)
var_Element:BackColor := 0x1000000
var_Element:Border := exNoLines
var_Element1 := var_Elements:Add("EBN 2",54,36)
var_Element1:BackColor := 0x2000000
var_Element1:Border := exNoLines
var_Element2 := var_Elements:Add("EBN 3",108,36)
var_Element2:BackColor := 0x3000000
var_Element2:Border := exNoLines
var_Element3 := var_Elements:Add("EBN 4 ",160,36)
var_Element3:BackColor := 0x4000000
var_Element3:Border := exNoLines
var_Element4 := var_Elements:Add("EBN 5 ",220,36)
var_Element4:BackColor := 0x5000000
var_Element4:MinHeight := 64
var_Element4:MinWidth := 64
var_Element4:Border := exNoLines
oDCOCX_Exontrol1:[ScrollPos,false] := -160
oDCOCX_Exontrol1:EndUpdate()
|
|
21
|
Is it possible to add an inner control on the surface

METHOD OCX_Exontrol1OleEvent(Element, Ev) CLASS MainDialog
// OleEvent event - Occurs once an inside control fires an event.
OutputDebugString(String2Psz( AsString(Ev) ))
RETURN NIL
local var_Element as IElement
local var_Elements as IElements
var_Elements := oDCOCX_Exontrol1:Elements
var_Element := var_Elements:Add("activex hosting",nil,nil)
var_Element:Type := exElementHostControl
var_Element:Control := "Forms.CommandButton.1"
var_Element:Caption := "Command Button"
var_Element:Height := 64
var_Element:Width := 128
var_Element:ElementFormat := "14;" + CHR(34) + "caption" + CHR(34) + "/" + CHR(34) + "client" + CHR(34) + ""
var_Element:CaptionAlign := exTopCenter
|
|
20
|
How can I create a copy of the element
oDCOCX_Exontrol1:[Background,exElementBackColor] := RGB(255,255,255)
oDCOCX_Exontrol1:Elements:Add("Element 1",0,0):Copy(nil,nil):Caption := "Aka"
|
|
19
|
How can I define an opaque background for elements

oDCOCX_Exontrol1:[Background,exElementBackColor] := RGB(255,255,255)
oDCOCX_Exontrol1:Elements:Add("Element 1",0,0)
oDCOCX_Exontrol1:Elements:Add("Element 2",16,16)
|
|
18
|
How can I show a different context-menu for all elements
METHOD OCX_Exontrol1ActionContextMenu(Action, ObjectType, ObjectID, CommandID, CommandChecked, CommandCaption, CommandValue, Cancel) CLASS MainDialog
// ActionContextMenu event - Occurs when the user selects an item from the object's context menu.
OutputDebugString(String2Psz( AsString(Action) ))
OutputDebugString(String2Psz( AsString(ObjectID) ))
OutputDebugString(String2Psz( AsString(CommandID) ))
RETURN NIL
oDCOCX_Exontrol1:[ContextMenu,exContextMenuElement] := "Item 1[id=1000],Item 2[id=2000]"
oDCOCX_Exontrol1:[Background,exElementBackColor] := RGB(255,255,255)
oDCOCX_Exontrol1:Elements:Add("Element 1",0,0)
oDCOCX_Exontrol1:Elements:Add("Element 2",16,16)
|
|
17
|
How can I show a different context-menu for element
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Elements:Add("Element",0,0):InvokeContextMenu("Item 1[id=1000],Item 2[id=2000]")) ))
|
|
16
|
How can I change the design-modes being shown on the control's toolbar

oDCOCX_Exontrol1:DesignModes := "Read-Only#0,Allow Any#3,Only-Element#1,Only-Pool#2"
|
|
15
|
How can I change the default header's background color

local var_Pool as IPool
oDCOCX_Exontrol1:BeginUpdate()
var_Pool := oDCOCX_Exontrol1:Pools:Add(-250,-150,500,250)
var_Pool:[Lane,exLaneHorizontal]:Children:Count := 4
var_Pool:[Lane,exLaneVertical]:Children:Count := 4
oDCOCX_Exontrol1:[Background,exPoolHorizontalHeaderBackColor] := RGB(0,255,0)
oDCOCX_Exontrol1:[Background,exPoolVerticalHeaderBackColor] := RGB(0,192,0)
oDCOCX_Exontrol1:EndUpdate()
|
|
14
|
How can I remove the Design item from the control's toolbar, to be locked ( no-design )

oDCOCX_Exontrol1:ToolBarFormat := "-1,100,101"
oDCOCX_Exontrol1:DesignMode := exDesignLock
|
|
13
|
How can I remove/disable the Color and Display-Grid from the surface's context menu

oDCOCX_Exontrol1:[ContextMenu,exContextMenuSurface] := "Delete[id=-32004](All[id=-32000][ttp=Deletes all the objects from the surface],[sep],Elements[id=-32001][ttp=Deletes all elements from the surface],Links[id=-32002][ttp=Deletes all links from the surface],Pools[id=-32003][ttp=Deletes all pools from the surface])"
|
|
12
|
How can I change the element's context-menu when the user right-clicks the element

METHOD OCX_Exontrol1ActionContextMenu(Action, ObjectType, ObjectID, CommandID, CommandChecked, CommandCaption, CommandValue, Cancel) CLASS MainDialog
// ActionContextMenu event - Occurs when the user selects an item from the object's context menu.
// ContextMenuObjectFromID(ObjectType,ObjectID).BackColor = RGB(255,255,0)
OutputDebugString(String2Psz( AsString(Action) ))
OutputDebugString(String2Psz( AsString(CommandCaption) ))
RETURN NIL
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:Elements:Add("element",0,0)
oDCOCX_Exontrol1:[ContextMenu,exContextMenuElement] := "Simple,Value[edit=123],[sep],Popup(Check 1[chk],Check 2[chk=1])"
oDCOCX_Exontrol1:EndUpdate()
|
|
11
|
How do I prevent showing the context-menu when user right-clicks the surface
oDCOCX_Exontrol1:[ContextMenu,exContextMenuSurface] := ""
|
|
10
|
How do I create parent-child (tree) lanes

local var_Lanes,var_Lanes1 as ILanes
local var_Pool as IPool
oDCOCX_Exontrol1:BeginUpdate()
var_Pool := oDCOCX_Exontrol1:Pools:Add(-250,-150,500,250)
var_Pool:[HeaderSize,exHeaderTop] := 32
var_Pool:[HeaderVisible,exHeaderBottom] := false
var_Lanes := var_Pool:[Lane,exLaneVertical]:Children
var_Lanes:Count := 2
var_Lanes1 := var_Lanes:[Item,0]:Children
var_Lanes1:Count := 2
var_Lanes1:[Item,0]:Header:Caption := "Phase <b>1.1"
var_Lanes1:[Item,1]:Header:Caption := "Phase <b>1.2"
oDCOCX_Exontrol1:EndUpdate()
|
|
9
|
How do I create a pool with horizontal and lanes

local var_Pool as IPool
oDCOCX_Exontrol1:BeginUpdate()
var_Pool := oDCOCX_Exontrol1:Pools:Add(-250,-150,500,250)
var_Pool:[Lane,exLaneHorizontal]:Children:Count := 4
var_Pool:[Lane,exLaneVertical]:Children:Count := 4
oDCOCX_Exontrol1:EndUpdate()
|
|
8
|
How do I add programatically a pool with horizontal lanes

local var_Pool as IPool
oDCOCX_Exontrol1:BeginUpdate()
var_Pool := oDCOCX_Exontrol1:Pools:Add(-250,-150,500,250)
var_Pool:[Lane,exLaneHorizontal]:Children:Count := 4
oDCOCX_Exontrol1:EndUpdate()
|
|
7
|
How do I add programatically a pool with vertical lanes

local var_Pool as IPool
oDCOCX_Exontrol1:BeginUpdate()
var_Pool := oDCOCX_Exontrol1:Pools:Add(-250,-150,500,250)
var_Pool:[Lane,exLaneVertical]:Children:Count := 4
oDCOCX_Exontrol1:EndUpdate()
|
|
6
|
How can I change the toolbar's visual appearance

oDCOCX_Exontrol1:VisualAppearance:Add(1,"c:\exontrol\images\normal.ebn")
oDCOCX_Exontrol1:[Background,exToolBarAppearance] := 0x1000000
oDCOCX_Exontrol1:[Background,exToolBarBackColor] := RGB(255,255,255)
oDCOCX_Exontrol1:[Background,exToolBarForeColor] := RGB(40,40,40)
oDCOCX_Exontrol1:[Background,exToolBarButtonDownBackColor] := 0x1606060
oDCOCX_Exontrol1:[Background,exToolBarButtonDownForeColor] := RGB(240,240,240)
oDCOCX_Exontrol1:[Background,exToolBarButtonHotBackColor] := 0x1a0a0a0
oDCOCX_Exontrol1:[Background,exToolBarButtonHotForeColor] := RGB(255,255,255)
|
|
5
|
How can I change the toolbar's background color

oDCOCX_Exontrol1:[Background,exToolBarBackColor] := RGB(255,255,255)
|
|
4
|
How can I fit or ensure that all elements are in the control's client area
local var_Elements as IElements
var_Elements := oDCOCX_Exontrol1:Elements
var_Elements:Add("Element A",-500,-500):BackColor := RGB(0,255,0)
var_Elements:Add("Element B",500,500):BackColor := RGB(255,0,0)
var_Elements:Add("Element C",48,24)
oDCOCX_Exontrol1:FitToClient()
|
|
3
|
Context Menu - Microsoft Windows 8.1 - Ribbon Like

local var_Appearance as IAppearance
oDCOCX_Exontrol1:BeginUpdate()
var_Appearance := oDCOCX_Exontrol1:VisualAppearance
var_Appearance:Add(1,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_background.ebn")
var_Appearance:Add(2,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_groupt.ebn")
var_Appearance:Add(12,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_hot.ebn")
var_Appearance:Add(14,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_select.ebn")
var_Appearance:Add(17,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_tab.ebn")
var_Appearance:Add(18,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_tabhot.ebn")
var_Appearance:Add(30,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_radio0.ebn")
var_Appearance:Add(31,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_radio1.ebn")
var_Appearance:Add(32,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_check0.ebn")
var_Appearance:Add(33,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_check1.ebn")
var_Appearance:Add(34,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_buttonu.ebn")
var_Appearance:Add(35,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_buttond.ebn")
oDCOCX_Exontrol1:[Background,exContextMenuAppearance] := 0x1000000
oDCOCX_Exontrol1:[Background,exToolTipAppearance] := 0x1fefefe
oDCOCX_Exontrol1:[Background,exContextMenuSelBackColor] := 0xe000000
oDCOCX_Exontrol1:[Background,exToolBarAppearance] := 0x1000000
oDCOCX_Exontrol1:[Background,exToolBarBackColor] := RGB(255,255,255)
oDCOCX_Exontrol1:[Background,exToolBarButtonHotBackColor] := 0xc000000
oDCOCX_Exontrol1:[Background,exToolBarButtonDownBackColor] := 0xe000000
oDCOCX_Exontrol1:[Background,exContextMenuHotBackColor] := 0xc000000
oDCOCX_Exontrol1:[Background,exContextMenuSelHotBackColor] := 0x23000000
oDCOCX_Exontrol1:[Background,0x2 | ] := 0x22000000
oDCOCX_Exontrol1:[Background,0x3 | ] := 0x23000000
oDCOCX_Exontrol1:[Background,exCheckBoxState0] := 0x20000000
oDCOCX_Exontrol1:[Background,exCheckBoxState1] := 0x21000000
oDCOCX_Exontrol1:[Background,exRadioButtonState0] := 0x1e000000
oDCOCX_Exontrol1:[Background,exRadioButtonState1] := 0x1f000000
oDCOCX_Exontrol1:EndUpdate()
|
|
2
|
Context Menu - Microsoft Paint - Ribbon Like

local var_Appearance as IAppearance
oDCOCX_Exontrol1:BeginUpdate()
var_Appearance := oDCOCX_Exontrol1:VisualAppearance
var_Appearance:Add(1,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_background.ebn")
var_Appearance:Add(2,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_groupt.ebn")
var_Appearance:Add(3,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_groupo.ebn")
var_Appearance:Add(4,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_grouphot.ebn")
var_Appearance:Add(5,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_frameh.ebn")
var_Appearance:Add(6,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framehs.ebn")
var_Appearance:Add(7,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framehi.ebn")
var_Appearance:Add(8,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framehe.ebn")
var_Appearance:Add(9,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framevs.ebn")
var_Appearance:Add(10,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framevi.ebn")
var_Appearance:Add(11,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_frameve.ebn")
var_Appearance:Add(12,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_select.ebn")
var_Appearance:Add(13,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_bordert.ebn")
var_Appearance:Add(14,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_buttond.ebn")
var_Appearance:Add(15,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_buttonu.ebn")
var_Appearance:Add(16,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_tab.ebn")
var_Appearance:Add(17,"CP:16 0 0 0 1")
var_Appearance:Add(18,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_tabhot.ebn")
var_Appearance:Add(19,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_tabselhot.ebn")
var_Appearance:Add(20,"CP:19 0 0 0 1")
oDCOCX_Exontrol1:[Background,exContextMenuAppearance] := 0x1000000
oDCOCX_Exontrol1:[Background,exContextMenuForeColor] := RGB(21,66,139)
oDCOCX_Exontrol1:[Background,exContextMenuSelBackColor] := 0xe000000
oDCOCX_Exontrol1:[Background,exToolTipAppearance] := 0x1fefefe
oDCOCX_Exontrol1:[Background,exToolBarAppearance] := 0x1000000
oDCOCX_Exontrol1:[Background,exToolBarBackColor] := RGB(255,255,255)
oDCOCX_Exontrol1:[Background,exToolBarButtonHotBackColor] := 0xd000000
oDCOCX_Exontrol1:[Background,exToolBarButtonDownBackColor] := 0x1000000
oDCOCX_Exontrol1:[Background,0x2 | ] := 0xd000000
oDCOCX_Exontrol1:[Background,exContextMenuGroupPopupFrameSingle] := 0x5000000
oDCOCX_Exontrol1:[Background,exContextMenuGroupPopupFrameHStart] := 0x6000000
oDCOCX_Exontrol1:[Background,exContextMenuGroupPopupFrameHIntermediate] := 0x7000000
oDCOCX_Exontrol1:[Background,exContextMenuGroupPopupFrameHEnd] := 0x8000000
oDCOCX_Exontrol1:[Background,exContextMenuGroupPopupFrameVStart] := 0x9000000
oDCOCX_Exontrol1:[Background,exContextMenuGroupPopupFrameVIntermediate] := 0xa000000
oDCOCX_Exontrol1:[Background,exContextMenuGroupPopupFrameVEnd] := 0xb000000
oDCOCX_Exontrol1:[Background,exContextMenuHotBackColor] := 0xc000000
oDCOCX_Exontrol1:[Background,exContextMenuSelHotBackColor] := 0xf000000
oDCOCX_Exontrol1:EndUpdate()
|
|
1
|
Context Menu - Microsoft Office - Ribbon Like

local var_Appearance as IAppearance
oDCOCX_Exontrol1:BeginUpdate()
var_Appearance := oDCOCX_Exontrol1:VisualAppearance
var_Appearance:Add(1,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_background.ebn")
var_Appearance:Add(2,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_groupt.ebn")
var_Appearance:Add(3,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_groupo.ebn")
var_Appearance:Add(4,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_grouphot.ebn")
var_Appearance:Add(5,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_frameh.ebn")
var_Appearance:Add(6,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framehs.ebn")
var_Appearance:Add(7,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framehi.ebn")
var_Appearance:Add(8,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framehe.ebn")
var_Appearance:Add(9,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framevs.ebn")
var_Appearance:Add(10,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framevi.ebn")
var_Appearance:Add(11,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_frameve.ebn")
var_Appearance:Add(12,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_select.ebn")
var_Appearance:Add(13,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_bordert.ebn")
var_Appearance:Add(14,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_buttond.ebn")
var_Appearance:Add(15,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_buttonu.ebn")
var_Appearance:Add(16,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_tab.ebn")
var_Appearance:Add(17,"CP:16 0 0 0 1")
var_Appearance:Add(18,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_tabhot.ebn")
var_Appearance:Add(19,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_tabselhot.ebn")
var_Appearance:Add(20,"CP:19 0 0 0 1")
oDCOCX_Exontrol1:[Background,exContextMenuAppearance] := 0x1000000
oDCOCX_Exontrol1:[Background,exContextMenuForeColor] := RGB(21,66,139)
oDCOCX_Exontrol1:[Background,exToolTipAppearance] := 0x1fefefe
oDCOCX_Exontrol1:[Background,exToolBarAppearance] := 0x1000000
oDCOCX_Exontrol1:[Background,exToolBarBackColor] := RGB(255,255,255)
oDCOCX_Exontrol1:[Background,exToolBarButtonHotBackColor] := 0xd000000
oDCOCX_Exontrol1:[Background,exToolBarButtonDownBackColor] := 0x1000000
oDCOCX_Exontrol1:[Background,0x2 | ] := 0xd000000
oDCOCX_Exontrol1:[Background,0x3 | ] := 0x1000000
oDCOCX_Exontrol1:[Background,exContextMenuGroupPopupFrameSingle] := 0x5000000
oDCOCX_Exontrol1:[Background,exContextMenuGroupPopupFrameHStart] := 0x6000000
oDCOCX_Exontrol1:[Background,exContextMenuGroupPopupFrameHIntermediate] := 0x7000000
oDCOCX_Exontrol1:[Background,exContextMenuGroupPopupFrameHEnd] := 0x8000000
oDCOCX_Exontrol1:[Background,exContextMenuGroupPopupFrameVStart] := 0x9000000
oDCOCX_Exontrol1:[Background,exContextMenuGroupPopupFrameVIntermediate] := 0xa000000
oDCOCX_Exontrol1:[Background,exContextMenuGroupPopupFrameVEnd] := 0xb000000
oDCOCX_Exontrol1:[Background,exContextMenuHotBackColor] := 0xc000000
oDCOCX_Exontrol1:[Background,exContextMenuSelBackColor] := 0xe000000
oDCOCX_Exontrol1:[Background,exContextMenuSelHotBackColor] := 0xf000000
oDCOCX_Exontrol1:EndUpdate()
|